package cn.jobstart.search;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import cn.jobstart.pubInter.BaseSearch;
import cn.jobstart.model.AdminJobPortrait;
import java.util.Date;
import java.util.List;
import java.math.BigDecimal;
import lombok.Data;
/**
*   @author sunke
*   @Date 2023-09-22 22:03:51
*   @description AdminJobPortraitSearch      职位画像
*/


@Data
@ApiModel("职位画像AdminJobPortraitSearch")
public abstract class AdminJobPortraitSearch<Sub extends AdminJobPortraitSearch<Sub>> extends BaseSearch {
    @ApiModelProperty(value = "主键")
    private List idIn;
    @ApiModelProperty(value = "大于排序")
    private Integer sortNumGreater;
    @ApiModelProperty(value = "小于排序")
    private Integer sortNumLess;
    @ApiModelProperty(value = "是否显示 1:是:Y,0:否:N")
    private List showFlagIn;
    @ApiModelProperty(value = "是否删除 1:删除:Y,0:正常:N")
    private Integer delFlagEq=0;
    @ApiModelProperty(value = "版本")
    private Integer versionEq;
    @ApiModelProperty(value = "员工职位ID")
    private String adminJobIdEq;
    @ApiModelProperty(value = "目标院校")
    private String targetSchoolLike;
    @ApiModelProperty(value = "目标专业")
    private String targetSpecialityLike;
    @ApiModelProperty(value = "大于年龄下限")
    private Integer ageMinGreater;
    @ApiModelProperty(value = "小于年龄下限")
    private Integer ageMinLess;
    @ApiModelProperty(value = "大于年龄上限")
    private Integer ageMaxGreater;
    @ApiModelProperty(value = "小于年龄上限")
    private Integer ageMaxLess;
    @ApiModelProperty(value = "技能")
    private String skillLike;
    @ApiModelProperty(value = "证书")
    private String certificateLike;
    @ApiModelProperty(value = "语言")
    private String languageLike;

    public AdminJobPortraitSearch() {
        setDelFlagEq(0);
    }



    /**
    * 返回子类Sub
    * @return
    */
    public abstract Sub getSubThis();

    @Override
    public String createTimeFiled() {
        return AdminJobPortrait.CREATE_TIME;
    }
    @Override
    public String updateTimeFiled() {
        return AdminJobPortrait.UPDATE_TIME;
    }
    @Override
    public String  setDefaultField() {
        return AdminJobPortrait.CREATE_TIME;
    }
    @Override
    public String pkField() {
        return AdminJobPortrait.ID;
    }

    @Override
    public String  toString() {
        return "AdminJobPortraitSearch{}"+super.toString();
    }
    public Sub setIdIn(List idIn){
        this.idIn = idIn;
        setInField(AdminJobPortrait.ID, idIn);
        return getSubThis();
    }
    public Sub setSortNumGreater(Integer sortNumGreater){
        this.sortNumGreater = sortNumGreater;
        setGreaterField(AdminJobPortrait.SORT_NUM, sortNumGreater);
        return getSubThis();
    }
    public Sub setSortNumLess(Integer sortNumLess){
        this.sortNumLess = sortNumLess;
        setLessField(AdminJobPortrait.SORT_NUM, sortNumLess);
        return getSubThis();
    }
    public Sub setShowFlagIn(List showFlagIn){
        this.showFlagIn = showFlagIn;
        setInField(AdminJobPortrait.SHOW_FLAG, showFlagIn);
        return getSubThis();
    }
    public Sub setDelFlagEq(Integer delFlagEq){
        this.delFlagEq = delFlagEq;
        setEqualField(AdminJobPortrait.DEL_FLAG, delFlagEq);
        return getSubThis();
    }
    public Sub setVersionEq(Integer versionEq){
        this.versionEq = versionEq;
        setEqualField(AdminJobPortrait.VERSION, versionEq);
        return getSubThis();
    }
    public Sub setAdminJobIdEq(String adminJobIdEq){
        this.adminJobIdEq = adminJobIdEq;
        setEqualField(AdminJobPortrait.ADMIN_JOB_ID, adminJobIdEq);
        return getSubThis();
    }
    public Sub setTargetSchoolLike(String targetSchoolLike){
        this.targetSchoolLike = targetSchoolLike;
        setLikeField(AdminJobPortrait.TARGET_SCHOOL, targetSchoolLike);
        return getSubThis();
    }
    public Sub setTargetSpecialityLike(String targetSpecialityLike){
        this.targetSpecialityLike = targetSpecialityLike;
        setLikeField(AdminJobPortrait.TARGET_SPECIALITY, targetSpecialityLike);
        return getSubThis();
    }
    public Sub setAgeMinGreater(Integer ageMinGreater){
        this.ageMinGreater = ageMinGreater;
        setGreaterField(AdminJobPortrait.AGE_MIN, ageMinGreater);
        return getSubThis();
    }
    public Sub setAgeMinLess(Integer ageMinLess){
        this.ageMinLess = ageMinLess;
        setLessField(AdminJobPortrait.AGE_MIN, ageMinLess);
        return getSubThis();
    }
    public Sub setAgeMaxGreater(Integer ageMaxGreater){
        this.ageMaxGreater = ageMaxGreater;
        setGreaterField(AdminJobPortrait.AGE_MAX, ageMaxGreater);
        return getSubThis();
    }
    public Sub setAgeMaxLess(Integer ageMaxLess){
        this.ageMaxLess = ageMaxLess;
        setLessField(AdminJobPortrait.AGE_MAX, ageMaxLess);
        return getSubThis();
    }
    public Sub setSkillLike(String skillLike){
        this.skillLike = skillLike;
        setLikeField(AdminJobPortrait.SKILL, skillLike);
        return getSubThis();
    }
    public Sub setCertificateLike(String certificateLike){
        this.certificateLike = certificateLike;
        setLikeField(AdminJobPortrait.CERTIFICATE, certificateLike);
        return getSubThis();
    }
    public Sub setLanguageLike(String languageLike){
        this.languageLike = languageLike;
        setLikeField(AdminJobPortrait.LANGUAGE, languageLike);
        return getSubThis();
    }
}